package com.openlogic.common.core.exception.logic;

/**
 * @ClassName: RuleException
 * @Description: 决策引擎异常
 * @author weiyongpeng
 * @date 2025年1月23日 下午8:44:23
 */
public final class RuleException extends RuntimeException {

	private static final long serialVersionUID = 1L;

	/** 错误码 */
	private Integer code;

	/** 错误提示 */
	private String message;

	/**
	 * 错误明细，内部调试错误
	 * <p>
	 * 和 {@link CommonResult#getDetailMessage()} 一致的设计
	 */
	private String detailMessage;

	/** 空构造方法，避免反序列化问题 */
	public RuleException() {
	}

	public RuleException(String message) {
		this.message = message;
	}

	public RuleException(String message, Integer code) {
		this.message = message;
		this.code = code;
	}

	public String getDetailMessage() {
		return detailMessage;
	}

	public String getMessage() {
		return message;
	}

	public Integer getCode() {
		return code;
	}

	public RuleException setMessage(String message) {
		this.message = message;
		return this;
	}

	public RuleException setDetailMessage(String detailMessage) {
		this.detailMessage = detailMessage;
		return this;
	}
}